# -*- coding=utf-8
import os
import zipfile
import time

from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
from qcloud_cos import CosServiceError
from qcloud_cos import CosClientError

import sys
import logging

tag = sys.argv[1]
print("tag ====> " + tag)

# 腾讯云COSV5Python SDK, 目前可以支持Python2.6与Python2.7以及Python3.x
# pip安装指南:pip install -U cos-python-sdk-v5
# cos最新可用地域,参照https://www.qcloud.com/document/product/436/6224

logging.basicConfig(level=logging.INFO, stream=sys.stdout)

# 设置用户属性, 包括secret_id, secret_key, region
# appid已在配置中移除,请在参数Bucket中带上appid。Bucket由bucketname-appid组成
secret_id = 'AKID4td7PRujLmwvd9IVUN0MGvfKp50eQZJy'  # 替换为用户的secret_id
secret_key = 'hHbuyqbpmTzKxsbDx82vXyA53ucHRO9J'  # 替换为用户的secret_key
region = 'ap-beijing'  # 替换为用户的region
token = None  # 使用临时密钥需要传入Token，默认为空,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token)  # 获取配置对象
client = CosS3Client(config)

# # 文件下载 获取文件到本地
zipname = 'frameworks-' + tag + '.zip'
# response = client.get_object(
#     Bucket='kit-device-log-1252363965',
#     Key='flutter-frameworks/' + zipname,
# )
#
# response['Body'].get_stream_to_file(zipname)
# print(response)

print("-------> 开始解压...")

dst_dir1 = 'frameworks-' + tag
def unzip_file(zipname1, dst_dir):
    r = zipfile.is_zipfile(zipname1)
    if r:
        print "1"
        fz = zipfile.ZipFile(zipname1, 'r')
        print "2"
        for file in fz.namelist():
            fz.extract(file, dst_dir)
    else:
        print('This is not zip')
unzip_file(zipname, "ios_embedding")

print("-------> 解压完成")

# 文件下载 获取文件流
# response = client.get_object(
#     Bucket='test04-123456789',
#     Key=file_name,
# )
# fp = response['Body'].get_raw_stream()
# print(fp.read(2))
#
# # 文件下载 设置Response HTTP 头部
# response = client.get_object(
#     Bucket='test04-123456789',
#     Key=file_name,
#     ResponseContentType='text/html; charset=utf-8'
# )
# print(response['Content-Type'])
# fp = response['Body'].get_raw_stream()
# print(fp.read(2))

# 文件下载 指定下载范围
# response = client.get_object(
#     Bucket='test04-123456789',
#     Key=file_name,
#     Range='bytes=0-10'
# )
# fp = response['Body'].get_raw_stream()
# print(fp.read())

# 文件下载 捕获异常
# try:
#     response = client.get_object(
#         Bucket='test04-123456789',
#         Key='not_exist.txt',
#     )
#     fp = response['Body'].get_raw_stream()
#     print(fp.read(2))
# except CosServiceError as e:
#     print(e.get_origin_msg())
#     print(e.get_digest_msg())
#     print(e.get_status_code())
#     print(e.get_error_code())
#     print(e.get_error_msg())
#     print(e.get_resource_location())
#     print(e.get_trace_id())
#     print(e.get_request_id())
